Efficient SIMD RNG for Varying-Parameter Streams: C++ Class BatchRNG
نویسندگان
چکیده
Single-Instruction, Multiple-Data (SIMD) random number generators (RNGs) take advantage of vector units to offer significant performance gain over non-vectorized libraries, but they often rely on batch production of deviates from distributions with fixed parameters. In many statistical applications such as Gibbs sampling, parameters of sampled distributions change from one iteration to the next, requiring that random deviates be generated one-at-a-time. This situation can render vectorized RNGs inefficient, and even inferior to their scalar counterparts. The C++ class BatchRNG uses buffers of base distributions such uniform, Gaussian and exponential to take advantage of vector units while allowing for sequences of deviates to be generated with varying parameters. These small buffers are consumed and replenished as needed during a program execution. Performance tests using Intel Vector Statistical Library (VSL) on various probability distributions illustrates the effectiveness of the proposed batching strategy.
منابع مشابه
Haskell Beats C Using Generalized Stream Fusion
Stream fusion [6] is a powerful technique for automatically transforming high-level sequence-processing functions into efficient implementations. It has been used to great effect in Haskell libraries for manipulating byte arrays, Unicode text, and unboxed vectors. However, some operations, like vector append, still do not perform well within the standard stream fusion framework. Others, like SI...
متن کاملInvestigation of the Performance of an Optimized Tree-Type Cylindrical-Shaped Nanoporous Filtering Membrane for Varying Operational Parameter Values
The performance of an optimized tree-type cylindrical-shaped nanoporous fltering membrane proposed in the former study is analytically investigated for varying operational parameter values. Across the membrane thickness, this membrane has two-leveled tree-structured pores including one trunk pore and the multiple branch pores. The physical properties of the surfaces of ...
متن کاملRNGSSELIB: Program library for random number generation. More generators, parallel streams of random numbers and Fortran compatibility
RNGSSELIB: Program library for random number generation. More generators, parallel streams of random numbers and Fortran compatibility. Abstract In this update, we present the new version of the random number generator (RNG) library RNGSSELIB, which, in particular, contains fast SSE real-izations of a number of modern and most reliable generators [1]. The new features are: i) Fortran compatibil...
متن کاملSIMD Ray Stream Tracing - SIMD Ray Traversal with Generalized Ray Packets and On-the-fly Re-Ordering -
Achieving high performance on modern CPUs requires efficient utilization of SIMD units. Doing so requires that algorithms are able to take full advantage of the SIMD width offered and to not waste SIMD instructions on low utilization cases. Ray tracers exploit SIMD extensions through packet tracing. This re-casts the ray tracing algorithm into a SIMD framework, but high SIMD efficiency is only ...
متن کاملApplication of Template-based Metaprogramming Compilation Techniques to the Efficient Implementation of Image Processing Algorithms on Simd-capable Processors
Microprocessors with SIMD enhanced instruction sets have been proposed as a solution for delivering higher hardware utilization for the most demanding media-processing applications. But direct exploitation of these SIMD extensions places a significant burden on the programmer since it generally involves a complex, low-level and awkward programming style. In this paper, we propose a high-level C...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1412.4825 شماره
صفحات -
تاریخ انتشار 2014